【技能五輪×AI】WorldSkills出場者が実践!生成AIを使った課題理解と採点の効率化!
こんにちは、技能五輪国際大会2024 ウェブデザイン職種の選手をしている戸田です。
技能五輪国際大会の練習において生成AIの使い勝手が抜群に良かったのでブログにします!
はじめに
技能五輪ではどの職種においても課題と採点項目の理解が必要だと感じます。この2つを理解するには集中力が必要です。 そこでAIの力を使って楽に解決しようと実行したところかなり便利でした! ある程度安定するところまでプロンプト(生成AIに対する命令や指令)をまとめられたのでご紹介します。
環境
- AI-Starter (クラスメソッド)
- ChatGPT (OpenAI)
- Gemini (Google)
- Claude (Anthropic)
社内で無制限に使用できるので、主にAI-Starterを使用して検証しました。これ一つで大体の生成AIサービスが使えるので便利でした! 以下が公式サイトの説明です。
1つの画面で、Claude、GPT、Geminiなど複数の生成AIサービスを操作可能。パッケージなので導入も簡単、誰でもAIを最大限に活用できます。
もちろんChatGPT, Gemini, Claudeを使用して実行すれば同じような結果が返ってくるはずです!(文章が長すぎると課金が必要になることがあります)
やってみる
まず僕が作ったプロンプトを紹介します!これを使えば大体どのサービスでも同じように出力してくれます。
今回の構成
- AI-Starter (GPT-4oを選択)
- 技能五輪全国大会 ウェブデザイン職種 M3課題 (ctrl + A か command + AでPDFの文章を全部コピペ)
実際のプロンプト
仕様書に書いてあるタスクを簡単に理解したいです。以下のサンプルを参考にして表を出力してください。参考文章検索用の欄には原文で使用されている文字をそのまま使用し、同じ文章内で被らないように少ない文章で記入してください。
条件
- 表はマークダウンの形式
- 参考文章検索用の欄以外は日本語での表示
サンプル
---
| セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 参考文章検索用 |
| --- | --- | --- | --- | --- | --- |
| セクション1 | | | | | |
| | 1 | | タスク1 | タスク1の説明 | |
| | | 1.1 | 子タスク1 | 子タスク1の説明 | |
| | 2 | | タスク2 | タスク2の説明 | |
| | | 2.1 | 子タスク2.1 | 子タスク2.1の説明 | |
| | | 2.2 | 子タスク2.2 | 子タスク2.2の説明 | |
| セクション2 | | | | | |
| | 3 | | タスク3 | タスク3の説明 | |
| | | 3.1 | 子タスク3.1 | 子タスク3.1の説明 | |
---
ここに課題のPDFの文章を全部コピペ!
出力
以下の表に練習問題のタスクを整理しました。
| セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 参考文章検索用 |
| --- | --- | --- | --- | --- | --- |
| 認証 | 1 | | 認証 | 認証機能の実装 | 1.認証 |
| | | 1.1 | ログイン | ログインAPIを用いて、認証トークンを取得する | ログイン |
| | | 1.2 | ログイン情報保持 | 入力したユーザーネームをブラウザにデータを保持し、再表示時に自動入力する | ログイン情報保持 |
| | | 1.3 | ログアウト | ログアウトAPIを用いて、ログアウトをする | ログアウト |
| 要素配置・移動 | 2 | | 要素配置・移動 | 要素の配置と移動に関するタスク | 2.要素配置・移動 |
| | | 2.1 | オブジェクト配置 | フィールド取得APIを用いて、フィールドに複数のオブジェクトを配置する | オブジェクト配置 |
| | | 2.2 | プレイヤー移動 | プレイヤーをオブジェクト単位で移動する | プレイヤー移動 |
| | | 2.3 | 移動可能ブロック | 移動可能ブロックをオブジェクト単位で移動する | 移動可能ブロック |
| | | 2.4 | 移動回数カウント | 移動可能ブロックの移動回数をカウントして表示する | 移動回数カウント |
| | | 2.5 | 滞在時間カウント | 滞在時間をカウントして表示する | 滞在時間カウント |
| | | 2.6 | 状態保持・復元 | オブジェクトの座標、移動回数、滞在時間を復元する | 状態保持・復元 |
| | | 2.7 | 出口オブジェクト | プレイヤーが出口オブジェクトに接触することで、結果一覧へ遷移する | 出口オブジェクト |
| APIデータ操作 | 3 | | APIデータ操作 | APIを用いたデータ操作 | 3.APIデータ操作 |
| | | 3.1 | 結果投稿 | 結果投稿APIを用いて、結果を投稿する | 結果投稿 |
| | | 3.2 | 結果一覧表示 | 結果一覧APIを用いて、結果を取得し、表示する | 結果一覧表示 |
これを表として表示するとこう!
セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 参考文章検索用 |
---|---|---|---|---|---|
認証 | 1 | 認証 | 認証機能の実装 | 1.認証 | |
1.1 | ログイン | ログインAPIを用いて、認証トークンを取得する | ログイン | ||
1.2 | ログイン情報保持 | 入力したユーザーネームをブラウザにデータを保持し、再表示時に自動入力する | ログイン情報保持 | ||
1.3 | ログアウト | ログアウトAPIを用いて、ログアウトをする | ログアウト | ||
要素配置・移動 | 2 | 要素配置・移動 | 要素の配置と移動に関するタスク | 2.要素配置・移動 | |
2.1 | オブジェクト配置 | フィールド取得APIを用いて、フィールドに複数のオブジェクトを配置する | オブジェクト配置 | ||
2.2 | プレイヤー移動 | プレイヤーをオブジェクト単位で移動する | プレイヤー移動 | ||
2.3 | 移動可能ブロック | 移動可能ブロックをオブジェクト単位で移動する | 移動可能ブロック | ||
2.4 | 移動回数カウント | 移動可能ブロックの移動回数をカウントして表示する | 移動回数カウント | ||
2.5 | 滞在時間カウント | 滞在時間をカウントして表示する | 滞在時間カウント | ||
2.6 | 状態保持・復元 | オブジェクトの座標、移動回数、滞在時間を復元する | 状態保持・復元 | ||
2.7 | 出口オブジェクト | プレイヤーが出口オブジェクトに接触することで、結果一覧へ遷移する | 出口オブジェクト | ||
APIデータ操作 | 3 | APIデータ操作 | APIを用いたデータ操作 | 3.APIデータ操作 | |
3.1 | 結果投稿 | 結果投稿APIを用いて、結果を投稿する | 結果投稿 | ||
3.2 | 結果一覧表示 | 結果一覧APIを用いて、結果を取得し、表示する | 結果一覧表示 |
これが数秒で出力されます!今までの課題理解や見直しの点数計算が楽になること間違い無いですね。 参考文章検索用の文字列をコピーして課題の中で検索すれば、原文も確認できます。
カスタマイズ
プロンプトを変えると自分のやりたいことに合わせてカスタマイズできます!
CSVにする
タスクはExcelで管理したい!という場合にはプロンプトの条件部分を以下のように変更してください。
条件
- 表はCSVの形式
- 参考文章検索用の欄以外は日本語での表示
そうすると以下の出力になります。これをコピーしてcsvファイルに貼り付ければExcelで表示できます!
セクション,親タスク番号,子タスク番号,タスク名,タスクの説明,参考文章検索用
認証,1,,ログイン,ログインAPIを用いて、認証トークンを取得する,ログインAPI
,,1.1,ログイン情報保持,入力したユーザーネームをブラウザにデータを保持し、再表示時に自動入力する,ユーザーネーム
,,1.2,ログアウト,ログアウトAPIを用いて、ログアウトをする,ログアウトAPI
要素配置・移動,2,,オブジェクト配置,フィールド取得APIを用いて、レスポンスの座標情報に対して、フィールドに複数のオブジェクトを配置する,フィールド取得API
,,2.1,プレイヤー移動,「方向キー(↑→↓←)」の押下時に、プレイヤーをオブジェクト単位で移動する,方向キー
,,2.2,移動可能ブロック,プレイヤー移動時に、移動先に移動可能ブロックがある場合に、移動可能ブロックをオブジェクト単位で移動する,移動可能ブロック
,,2.3,移動回数カウント,移動可能ブロックの移動回数をカウントして表示する,移動回数
,,2.4,滞在時間カウント,滞在時間をカウントして表示する,滞在時間
,,2.5,状態保持・復元,途中でブラウザを終了し、再度ページを開いた場合は、オブジェクトの座標、移動回数、滞在時間を復元する,状態保持
,,2.6,出口オブジェクト,プレイヤーが出口オブジェクトに接触することで、結果一覧へ遷移する,出口オブジェクト
APIデータ操作,3,,結果投稿,結果投稿APIを用いて、結果を投稿する,結果投稿API
,,3.1,結果一覧表示,結果一覧APIを用いて、結果を取得し、滞在時間の短い順に3件のみ表示する,結果一覧API
より詳細にする
今の出力に満足できなかったら追加でプロンプトを書くことで解決できます。
より詳細にタスクを分割してください。
出力(表として表示してます)
セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 参考文章検索用 |
---|---|---|---|---|---|
認証 | 1 | 認証 | ログイン、ログイン情報保持、ログアウトの機能を実装する | 認証 | |
1.1 | ログイン | ログインAPIを用いて、認証トークンを取得する | ログインAPI | ||
1.1.1 | 認証成功時の処理 | 認証に成功した場合は、ブラウザに認証トークンを保持する | 認証成功 | ||
1.1.2 | 認証失敗時の処理 | 認証に失敗した場合は、認証失敗のエラーメッセージを表示する | 認証失敗 | ||
1.2 | ログイン情報保持 | 入力したユーザーネームをブラウザにデータを保持し、再表示時に自動入力する | 自動入力 | ||
1.3 | ログアウト | ログアウトAPIを用いて、ログアウトをする | ログアウトAPI | ||
1.3.1 | 認証トークン破棄 | ブラウザの認証トークンを破棄する | 認証トークン破棄 | ||
要素配置・移動 | 2 | 要素配置・移動 | オブジェクト配置、プレイヤー移動、移動可能ブロック、移動回数カウント、滞在時間カウント、状態保持・復元、出口オブジェクトの機能を実装する | 移動 | |
2.1 | オブジェクト配置 | フィールド取得APIを用いて、レスポンスの座標情報に対して、フィールドに複数のオブジェクトを配置する | フィールド取得API | ||
2.2 | プレイヤー移動 | 「方向キー(↑→↓←)」の押下時に、プレイヤーをオブジェクト単位で移動する | 方向キー | ||
2.2.1 | 移動制限 | プレイヤーの移動先に壁や障害物がある場合は、プレイヤーの移動はできない | 壁や障害物 | ||
2.3 | 移動可能ブロック | プレイヤー移動時に、移動先に移動可能ブロックがある場合に、移動可能ブロックをオブジェクト単位で移動する | 移動可能ブロック | ||
2.3.1 | 移動制限 | 移動可能ブロックの移動先に移動可能ブロックや障害物などがある場合は、移動可能ブロックの移動はできない | 移動制限 | ||
2.4 | 移動回数カウント | 移動可能ブロックの移動回数をカウントして表示する | 移動回数 | ||
2.5 | 滞在時間カウント | 滞在時間をカウントして表示する | 滞在時間 | ||
2.6 | 状態保持・復元 | 途中でブラウザを終了し、再度ページを開いた場合は、オブジェクトの座標、移動回数、滞在時間を復元する | 状態保持 | ||
2.7 | 出口オブジェクト | プレイヤーが出口オブジェクトに接触することで、結果一覧へ遷移する | 出口オブジェクト | ||
APIデータ操作 | 3 | APIデータ操作 | 結果投稿、結果一覧表示の機能を実装する | APIデータ | |
3.1 | 結果投稿 | 結果投稿APIを用いて、結果を投稿する | 結果投稿API | ||
3.2 | 結果一覧表示 | 結果一覧APIを用いて、結果を取得し、滞在時間の短い順に3件のみ表示する | 結果一覧API | ||
3.2.1 | アクティブ表示 | プレイヤーのユーザーネームと一致する場合は、アクティブ表示をする | アクティブ表示 |
このように追加で要望を伝えると解決してくれます。
予想点数をつける
今度はAIによる点数予想をしてもらいます。 プロンプト(条件の部分)
条件
- 表はマークダウンの形式
- 参考文章検索用の欄以外は日本語での表示
- 予想点数欄を追加してタスクの難易度に応じて親タスクと小タスクに点数をつけてください
- 予想点数欄の合計は100になるようにしてください
出力
出力
セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 予想点数 | 参考文章検索用 |
---|---|---|---|---|---|---|
認証 | 1 | ログイン | ログインAPIを用いて、認証トークンを取得する | 10 | ログイン | |
1.1 | 認証失敗時の対応 | 認証に失敗した場合は、認証失敗のエラーメッセージを表示する | 5 | 認証失敗 | ||
1.2 | 認証成功時の対応 | 認証に成功した場合は、ブラウザに認証トークンを保持する | 5 | 認証成功 | ||
2 | ログイン情報保持 | 入力したユーザーネームをブラウザにデータを保持し、再表示時に自動入力する | 5 | ログイン情報 | ||
3 | ログアウト | ログアウトAPIを用いて、ログアウトをする | 5 | ログアウト | ||
3.1 | 認証トークン破棄 | ブラウザの認証トークンを破棄する | 5 | 認証トークン | ||
要素配置・移動 | 4 | オブジェクト配置 | フィールド取得APIを用いて、レスポンスの座標情報に対して、フィールドに複数のオブジェクトを配置する | 10 | オブジェクト配置 | |
5 | プレイヤー移動 | 「方向キー(↑→↓←)」の押下時に、プレイヤーをオブジェクト単位で移動する | 10 | プレイヤー移動 | ||
6 | 移動可能ブロック | プレイヤー移動時に、移動先に移動可能ブロックがある場合に、移動可能ブロックをオブジェクト単位で移動する | 10 | 移動可能ブロック | ||
7 | 移動回数カウント | 移動可能ブロックの移動回数をカウントして表示する | 5 | 移動回数 | ||
8 | 滞在時間カウント | 滞在時間をカウントして表示する | 5 | 滞在時間 | ||
9 | 状態保持・復元 | 途中でブラウザを終了し、再度ページを開いた場合は、オブジェクトの座標、移動回数、滞在時間を復元する | 10 | 状態保持 | ||
10 | 出口オブジェクト | プレイヤーが出口オブジェクトに接触することで、結果一覧へ遷移する | 5 | 出口オブジェクト | ||
APIデータ操作 | 11 | 結果投稿 | 結果投稿APIを用いて、結果を投稿する | 5 | 結果投稿 | |
12 | 結果一覧表示 | 結果一覧APIを用いて、結果を取得し、滞在時間の短い順に3件のみ表示する | 10 | 結果一覧 | ||
12.1 | アクティブ表示 | プレイヤーのユーザーネームと一致する場合は、アクティブ表示をする | 5 | アクティブ表示 |
合計点数: 100
合計が110点で出力されていますが、修正すればある程度は使えそうです。csvで出力すればExcelで簡単に点数計算できますね!
他の職種の課題でやってみる
構成
- AI-Starter (GPT-4oを選択)
- 第61回 技能五輪全国大会 メカトロニクス職種 (競技課題と採点基準)
課題の内容のみを変更
出力
| セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 参考文章検索用 |
| --- | --- | --- | --- | --- | --- |
| 競技課題 | | | | | |
| | 1 | | ステーション製作 | 模擬生産設備の一部のステーションの機械装置、電気回路、および空気圧回路の製作と調整を行う | ステーション製作 |
| | | 1.1 | 組立 | 組立・配線・配管等の作業 | 組立 |
| | | 1.2 | 動作プログラム | 仕様書通りワークが搬送されるように動作プログラムを作成する | 動作プログラム |
| | 2 | | メンテナンス | 設備を改善するための保全作業を行う | メンテナンス |
| | | 2.1 | 部品交換 | 破損もしくは破損する恐れのある部品の交換作業を行う | 部品交換 |
| | | 2.2 | 性能向上 | 設備の性能向上や機能追加などの改善作業を行う | 性能向上 |
| 競技時間 | | | | | |
| | 3 | | 第1課題の競技時間 | 競技標準時間 5 時間 00 分、競技延長時間 1 時間 00 分 | 競技標準時間 |
| | 4 | | 第2課題の競技時間 | 競技時間 2 時間 00 分 | 競技時間 |
| 競技用設備 | | | | | |
| | 5 | | 競技用FAモデル | 競技用 FA モデルおよび部品は、参加チームが準備すること | 競技用 FA モデル |
| | | 5.1 | 作業台 | 作業台の高さ 床面から 1.2m 以内 | 作業台 |
| | | 5.2 | 電源 | AC 100V 計 20A 2P E 付 4 口を競技エリア内に設置 | 電源 |
| 採点基準 | | | | | |
| | 6 | | 第1課題の採点 | ステーション製作の単体動作、標準課題、外観、応用課題、組立 | 第1課題の採点 |
| | 7 | | 第2課題の採点 | メンテナンスの動作、外観、組立、時間 | 第2課題の採点 |
| 課題解説 | | | | | |
| | 8 | | ステーション製作課題 | 複数のステーションや産業用ロボットと組み合わせた生産設備を構築する | ステーション製作課題 |
| | | 8.1 | 標準課題 | 複数のステーションや産業用ロボットと組み合わせた生産設備を構築する課題 | 標準課題 |
| | | 8.2 | 応用課題 | 完成した標準課題の動作を変更する応用的な課題 | 応用課題 |
| | 9 | | メンテナンス課題 | 完成した標準課題の設備を改善するための保全作業を行う | メンテナンス課題 |
表にしたパターン
セクション | 親タスク番号 | 子タスク番号 | タスク名 | タスクの説明 | 参考文章検索用 |
---|---|---|---|---|---|
競技課題 | |||||
1 | ステーション製作 | 模擬生産設備の一部のステーションの機械装置、電気回路、および空気圧回路の製作と調整を行う | ステーション製作 | ||
1.1 | 組立 | 組立・配線・配管等の作業 | 組立 | ||
1.2 | 動作プログラム | 仕様書通りワークが搬送されるように動作プログラムを作成する | 動作プログラム | ||
2 | メンテナンス | 設備を改善するための保全作業を行う | メンテナンス | ||
2.1 | 部品交換 | 破損もしくは破損する恐れのある部品の交換作業を行う | 部品交換 | ||
2.2 | 性能向上 | 設備の性能向上や機能追加などの改善作業を行う | 性能向上 | ||
競技時間 | |||||
3 | 第1課題の競技時間 | 競技標準時間 5 時間 00 分、競技延長時間 1 時間 00 分 | 競技標準時間 | ||
4 | 第2課題の競技時間 | 競技時間 2 時間 00 分 | 競技時間 | ||
競技用設備 | |||||
5 | 競技用FAモデル | 競技用 FA モデルおよび部品は、参加チームが準備すること | 競技用 FA モデル | ||
5.1 | 作業台 | 作業台の高さ 床面から 1.2m 以内 | 作業台 | ||
5.2 | 電源 | AC 100V 計 20A 2P E 付 4 口を競技エリア内に設置 | 電源 | ||
採点基準 | |||||
6 | 第1課題の採点 | ステーション製作の単体動作、標準課題、外観、応用課題、組立 | 第1課題の採点 | ||
7 | 第2課題の採点 | メンテナンスの動作、外観、組立、時間 | 第2課題の採点 | ||
課題解説 | |||||
8 | ステーション製作課題 | 複数のステーションや産業用ロボットと組み合わせた生産設備を構築する | ステーション製作課題 | ||
8.1 | 標準課題 | 複数のステーションや産業用ロボットと組み合わせた生産設備を構築する課題 | 標準課題 | ||
8.2 | 応用課題 | 完成した標準課題の動作を変更する応用的な課題 | 応用課題 | ||
9 | メンテナンス課題 | 完成した標準課題の設備を改善するための保全作業を行う | メンテナンス課題 |
これなら他の職種でも使えそうです!
注意点
サービスが同じでも出力結果が同じとは限りません。今回紹介したプロンプトを同じように記述しても全く同じ結果が返ることは少ないです。 また、サービスごとの特徴などもあるので使い分けられると上級者に近づくと思います!
最後に
今回は技能五輪と生成AIにフォーカスしました。 最近はWorldSkills2024を目標に生成AIを使用して訓練を進めています。今では生成AI無しでは訓練を進めることができないくらいになってます。もっともっとAIを活用してより日本選手が活躍できるようになると嬉しいです!
この手法は技能五輪のみに限らず使えるのでぜひ参考にしてみてください!